package option

import (
	"gitee.com/hasika/gotool/container"

	"gitee.com/hasika/common-server/codec"
	"gitee.com/hasika/common-server/conn/inet"
	"gitee.com/hasika/common-server/pb/sessionpb"
)

type ISessionOption interface {
	Bind(*sessionpb.SessionBindReq) (bool, error)
	ApplySessionCtxReadOnly(ctx container.MapInterface[string, any], data codec.Packet)
	PostSessionUpdateReadWrite(session *inet.Session, req *sessionpb.SessionUpdateReq)
	PostHeartBeatReadOnly(session *inet.Session, req *sessionpb.SessionHeartBeatReq)
	PostSessionBindReadWrite(session *inet.Session, req *sessionpb.SessionBindReq)
}
